Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. One such technique is a solid modeling technique, which provides for topological 3D models where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). The trimmed surfaces correspond to the topological faces bounded by the edges. CAD systems may combine solid modeling and other modeling techniques, such as parametric modeling techniques. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates parts and may assemble the parts into a subassembly. A subassembly may also consist of other subassemblies. An assembly is designed using parts and subassemblies. Parts and subassemblies are hereinafter collectively referred to as components.
A solid modeling system may be a feature-based 3D CAD system wherein a part is constructed using various features. Examples of features include bosses, fillets, chamfers, cuts, holes, shells, lofts, and sweeps. Commercially available feature-based modeling systems include the SolidWorks® 2011 software system available from Dassault Systèmes SolidWorks Corporation of Concord, Mass. SolidWorks software and other commercially available CAD systems store the contents of parts, subassemblies, and assemblies in a data file. In addition to features, the contents of CAD data files may include design profiles, layouts, internal components (e.g., bodies), and graphical entities.
Reusing components as often as possible is an established engineering best-practice. For example, an automobile manufacturer will often seek to use the same wheels on several models of vehicles. Although the vehicles themselves may be very different, the manner in which the wheels are attached to the vehicle is usually the same, that is, wheels are usually centered on a hub through the wheel's center hole and attached to the vehicle through lug nuts or bolts.
In current state-of-the-art CAD systems, when the design engineer inserts a wheel into a new vehicle design model, for example, the design engineer may need to execute a constraint process to attach the wheel to the vehicle. Defining constraint relationships (e.g., mating relationships) for parts in a CAD model may be a tedious process involving many mouse clicks for each part in the constraint relationship. Yet in many cases, the components being constrained by the design engineer have been previously constrained by someone else in the design engineer's organization or community, and thus the work to establish a similar constrained relationship within a new model is at least in part a repetition of the work already done by others. That is, a similar constraint process may have already been executed in previous vehicle designs in which the wheel was attached in the same way.
Current approaches to this problem include geometry-based solutions and predetermined mate-reference solutions. Geometry-based solutions allow a design engineer to select and drag or otherwise specify a particular geometry to be mated. In SolidWorks® software, the SmartMates tool provides for a geometry-based solution. SmartMates can be used to determine that a circular edge on one component and a circular pattern on a second component match (e.g., have the same radius), and can add a concentric mate to align the circular edge with the circular pattern. This approach does not reuse any intelligence from previous uses of components.
Predetermined mate-reference solutions allow a design engineer to manually define a constrained relationship ahead of time through selections and specifications of mates likely to be needed later. Once the definition is completed, components can be constrained automatically if certain conditions are met. However, this prior setup requirement has proved to be a barrier to adoption because, in most cases, manually constraining a component is easier than taking the time to define constrained references in advance. Further, predetermined mate-reference solutions require a level of premeditation and setup that design engineers may find too cumbersome for all but the most commonly used components. Thus, defining mate references in advance is not always efficient use of a design engineer's time.